Part Number Hot Search : 
A2003G SBR10 IRLM220A AIDM160 5C6V2 1805517 8TB12 TC105
Product Description
Full Text Search
 

To Download 8B10B Datasheet File

  If you can't view the Datasheet, Please click here to try to view without PDF Reader .  
 
 


  Datasheet File OCR Text:
  may 2000 1 ? 2000 actel corporation v2.0 8B10B macro product summary ? gigabit ethernet 8B10B function  125 mhz operation  transmit and receive function  disparity and illegal code error checking  connects directly to industry-standard gigabit ethernet transceiver devices.  supports either single or dual channel transceiver in a single device. version this data sheet defines the functionality of version 1.0 of the 8B10B macro. general description the 8B10B macro implements the function for the physical coding sublayer for gigabit ethernet as defined in the ieee 802.3z specification. the 8B10B is a marriage of two sub-blocks, the 5b6b and the 3b4b encoder/decoders (endecs). the purpose of the endec is to convert 8-bit data into a 10-bit code that contains an equal number of 0?s and 1?s. in addition, the code is built so that no more than five consecutive 0?s or 1?s are ever transmitted. the 8B10B macro is designed to work with a variety of standard transceiver devices. a set of generic signals provides a data and command interface with the system logic. a system-level block diagram describing the use of the 8B10B macro is shown in figure 1. the 8B10B macro provides a user interface and a transceiver interface. the user interface consists of transmit data, receive data, and several control and status signals used to qualify the data. to simplify the timing of the user interface, the data transmission is word-wide (16-bits) and operates at 62.5 mhz. this strategy provides a simplified timing interface for system logic yet still meets the 125 megabyte per second requirements for gigabit ethernet. the transceiver interface is designed to connect directly to most commercially-available gigabit ethernet transceiver devices. the transceiver is responsible for serializing transmit data and deserializing receive data. in addition, the receiver is designed to resynchronize the serial stream whenever an external device detects illegal coding errors. figure 1 ? system block diagram depicting 8B10B macro usage transmitter receiver transceiver tx_data[9:0] clk125 rx_data[9:0] comma_detect rbc0 rbc1 comma_det_en 8B10B macro tx_word[15:0] tx_k_char[1:0] invalid_k rx_word[15:0] rx_clk rx_k_char[1:0] code_errorn[1:0] word_syncn serial_tx serial_rx tx_wrn rstn
2 8B10B device requirements performance requirements of the 8B10B macro drives device selection. table 1 defines the minimum device requirements for the a54sxa family. i/o signal descriptions the 8B10B macro signals are defined in tables 2 and 3. 8B10B transmitter detailed operation the 8B10B transmitter is a pipelined structure that converts 16-bit command or data information into two 10-bit encoded values. command and data information are qualified by the tx_k_char[1:0] bus. tx_k_char[1] corresponds to the upper data byte on tx_word[15:0] and tx_k_char[0] is for the lower byte. the data on the tx_word bus is continuously registered into the transmitter; however, this data is only transferred to the encoder when the tx_wrn signal is driven low for a single cycle. the transmitter will encode and send the upper byte first followed by the lower byte. because of the pipelined nature of the transmitter, the first encoded data will be driven on the tx_data bus several cycles after the tx_wrn pulse. all data input information is valid, though command possibilities are limited. if the transmitter detects a bad command, then it will assert the invalid_k signal. when the tx_wrn input is inactive, the transmitter will continuously send an idle2 (k28.5/d16.2) command defined in the 802.3 specification. figure 2 on page 3 illustrates the implementation of the transmitter function. the core of the transmitter consists of a data encoder, a command encoder, and a disparity calculator. each encoder calculates a 4b and 6b code for the input data. the correct code, command or data, is then selected based on the original input value of tx_k_char. the disparity calculator determines whether encoded values need to be inverted to maintain the correct running disparity. finally, the code is registered and sent to the transceiver on the tx_data bus. 8B10B receiver detailed operation the 8b10 receiver is also a pipelined structure that converts two 10-bit encoded values qualified by the clocks rbc0 and rbc1 and converts them to 16-bit command or data information. command information is indicated by the rx_k_char[1:0] bus signals asserted high. the data on the upper byte of the rx_word bus is the first decoded value in the sequence. several signals qualify the validity of the information on rx_word. rx_word contains good information whenever code_errorn is inactive (high) and word_syncn is active (low). if word_syncn is high or code_errorn is low, this indicates some problem in transmission. whenever the receiver loses sync (word_syncn is high), it asserts the comma_det_en output so that the transceiver resynchronizes the data on subsequent k28.5 commands. when sync is reestablished, the word_syncn will again be driven low after the pipeline has been flushed of potentially bad data. figure3onpage4 illustrates the implementation of the 8B10B receive function. receive data is first loaded into two parallel registers. the first register is active on the rising edge of rbc0 and the second on the rising edge of rbc1. the rbc0 data is then table 1  device statistics for the 8B10B macro device speed grade utilization a54sx08a standard 96% a54sx16a standard 48% a54sx32a -1 24% table 2  transceiver interface signals name 1 type description comma_detect input active high pulse from the transceiver indicating that a comma character has been detected and the received data is aligned with the rising edge of the rbc1 clock. rbc0, rbc1 input clock signals recovered from the received data stream. these clocks are 180 degrees out of phase and the rising edge of each clock qualifies receive data. rx_data[9:0] input 10-bit encoded input data from the transceiver qualified by the rising edges of rbc0 and rbc1. comma_det_en output active high signal indicating that the transceiver should align the data stream with the rising edge of rbc1. this output is asserted when the 8B10B detects multiple consecutive encoding errors. tx_data[9:0] output 10-bit encoded output data to the transceiver. note: 1. active low signals are designated with a trailing lower-case n.
3 8B10B macro resynchronized with rbc1 on the next rbc1 rising clock edge. from this point, the two codes are decoded in parallel and move from stage to stage based on the rbc1 clock input. the error check block monitors the incoming codes and checks for illegal codes and/or bad running disparity. when an error in the 8B10B code is detected, the code_errorn is asserted. if several codes in a row are received with errors, then the 8B10B will assume that synchronization with the transceiver has been lost and will deactivate word_syncn and assert the comma_det_en signal. the number of table 3  system interface signals name 1 type description clk125 input primary 125mhz clock signal for the transmit block of the 8B10B macro. rstn input asynchronous reset signal for the macro. tx_k_char[1:0] input active high signal indicating that the tx_word[15:0] contains command informa- tion. bit 0 corresponds to the lower byte (bits 7:0) and bit 1 corresponds to the upper byte (bits 15:8) of tx_word. tx_word[15:0] input 16-bit input data to the transmitter. byte 1 is transmitted first followed by byte 0. tx_wrn input active low signal that qualifies the tx_word data. when this signal is asserted, the data defined on tx_word will be registered into the 8B10B macro, encoded, and sent to the transceiver in two consecutive 10-bit transfers. code_errorn[1:0] output active low signal indicating that the endec has detected an error in the received data stream. bit 0 corresponds to the lower byte (bits 7:0) and bit 1 corresponds to the upper byte (bits 15:8) of rx_word. invalid_k output active high signal indicating that the upstream device requested the endec to transmit an invalid command character. this signal is asserted when either of the tx_k_char[1:0] is active, but the associated don on the byte lane of tx_word[15:0] does not correspond to a valid command character. rx_clk output the receive clock. the rising edge of this clock qualifies rx_word[15:0], rx_k_char[1:0], word_syncn, and code_errorn[1:0]. rx_k_char[1:0] output output from the endec to the transceiver indicating that the received data is a command code. rx_word[15:0] output 16-bit decoded receive data. the upper byte was received first and the lower byte was received second in the data sequence. word_syncn output active low signal indicating that the received data is correctly aligned. note: 1. active low signals are designated with a trailing lower-case n. figure 2  8B10B transmitter block diagram encode 6b data encode 4b data encode 6b command encode 4b command disparity calculation d q d q invert_code select_k tx_word[7:0] tx_k_char0 tx_word[15:8] tx_k_char1 tx_wrn tx_data[9:0] clk_125mhz d-4b/6b k-4b/6b invalid_k data steering d q d q d q k28.5 d16.2
4 consecutive errors required to force a resynchronization is programmable, from 2 to 16 (default is 6). the transceiver then resynchronizes the data on the rising edge of rbc1 using k28.5 codes. a pulse on the comma_detect input indicates that the transceiver has reacquired sync. the 8B10B responds by deasserting comma_det_en and asserting word_syncn. figure 3  8B10B receiver block diagram decode block d q d q d q d q synchronization block d q d q comma_det_en word_syncn comma_detect rx_word[15:0] rx_k_char[1:0] code_errorn[1:0] rx_clk rx_data[9:0] rbc0 rbc1
5 8B10B macro hierarchy of the 8B10B model the hierarchy of the 8B10B model is shown in figure 4 . the transmitter is the encoder. the encoder is subdivided into the data encoder (enc_d), command encoder (enc_k), and the running disparity calculator (enc_flip). the enc_d is composed of the mux32x6, mux32x1, and mux4x1 modules that create a rom for data encoding. the receiver is the decoder, which is subdivided into the data decoder (dec_data), running disparity decoder (dec_rd), and the synchronization state machine (sync_fsm). utilization statistics the 8B10B macro uses approximately 250 sequential modules and 350 combinatorial modules in the a54sx-a devices. the macro also uses approximately 70 i/os and requires two clock networks for the clk125 and rbc1 inputs. because of the light loading, the clock input rbc0 can use a regular input. it is possible to implement a dual channel 8B10B in either the a54sx16a or a54sx32a device. system timing the 8B10B macro is divided into two functions, the transmitter and the receiver. the transmitter is designed to operate at 125 mhz, the receiver at 62.5 mhz. the input setup time for transmitter signals (tx_word, tx_k_char, and tx_wrn) are measured with respect to the rising edge of clk125. the input setup time for the receiver signal rx_data is measured with respect to the rising edge of both rbc0 and rbc1. the input setup time for the comma_detect signal is measured with respect to rbc1 only. receiver output timing is defined with respect to the rising edge of rx_clk, an inverted version of rbc1 (refer to figure 5 and figure 6 ). table 4 defines the internal register-to-register delays for the clk125mhz domain (transmitter) and the rbc1 domain (receiver). rbc0 domain to rbc1 domain timing is provided for reference. input setup requirements are defined in table 5 . output valid times are defined in table 6 and table 7 . 8B10B waveforms the operation of the 8B10B macro is illustrated in the following waveforms. the function of the 8B10B can be illustrated using 5 different waveforms:  normal transmission  transmission with an invalid k command  normal receive  loss of synchronization with the transceiver  synchronization with the transceiver figure 4  hierarchy of the 8B10B endec. endec transmitter decoder enc_d enc_k enc_flip encoder dec_data dec_err dec_rd reset_sync sync_fsm mux32x6 mux32x1 mux4x1 figure 5  input timing for 8B10B signals figure 6  output timing for 8B10B signals table 4  internal reg-reg delays (ns max) name sx08a sx16a sx32a-1 clk125mhz 7.5 7.5 7.0 rbc1 13.5 15.0 12.5 rbc0 -> rbc1 2.0 2.0 2 notes: 1. all timing is for worst-case commercial conditions. 2. expected values from commercially available synthesis tools using standard design practices. t_h inputs valid clk t_su clk t _ v a l output delay
6 a normal transmission begins by placing valid data/command information on tx_word and tx_k_char while simultaneously asserting the tx_wrn signal. after several cycles, the encoded data is driven onto the tx_data bus. if command information is illegal, the invalid_k signal will assert for one cycle. normal 8B10B transmission is illustrated in figure 7 and an invalid command waveform is shown in figure 8 on page 7 . a normal receive assumes that the 8B10B encoded data on rx_data is aligned with rbc1. encoded data is registered into the 8B10B off the rising edge of both rbc1 and rbc0. after several cycles, the unencoded data or command is driven onto the rx_word and rx_k_char buses. this information is qualified by the rising edge of rx_clk. the normal 8B10B receive is depicted in figure 9 on page 7 . in some cases, the 8B10B detects an error condition on the incoming data stream. when this occurs, the output code_errorn is asserted. if several consecutive errors are found, the 8B10B will assume that it has lost synchronization with the transceiver and will attempt to resynchronize by asserting the comma_det_en output as shown in figure 10 on page 7 . when the comma_det_en output is asserted, the transceiver will scan the incoming data stream for a k28.5 command code and will resynchronize rx_data on the rising edge of rbc1. if the data stream is synchronized and a k28.5 command is detected, then the transceiver will indicate synchronization by asserting the comma_detect signal. after two pulses, the 8B10B will again be synchronized as indicated by the word_syncn signal in figure 11 on page 8 . table 5  input required set-up times (ns max) name sx08a sx16a sx32a-1 comma_detect 0.5 0.5 0.5 rx_data[9:0] 1.0 1.0 0.5 tx_wrn 0.5 0.5 0.5 tx_k_char 1.0 1.0 0.5 tx_word[15:0] 1.0 1.0 0.5 notes: 1. all timing is for worst-case commercial conditions. 2. expected values from commercially available synthesis tools using standard design practices. table 6  output valid times (ns max) name sx08a sx16a sx32a-1 comma_det_en 6.0 6.0 6.0 invalid_k 6.0 6.0 6.0 tx_data[9:0] 5.5 5.5 5.5 rx_clk 6.0 6.0 6.0 notes: 1. all timing is for worst-case commercial conditions. 2. expected values from commercially available synthesis tools using standard design practices. table 7  receive data valid prior to rx_clk (ns max) name sx08a sx16a sx32a-1 code_errorn 6.0 6.0 6.0 rx_k_char 6.0 6.0 6.0 rx_word[15:0] 6.0 6.0 6.0 word_syncn 6.0 6.0 6.0 notes: 1. all timing is for worst-case commercial conditions. 2. expected values from commercially available synthesis tools using standard design practices. 3. hold times for all signals is at least 2ns after the rising edge of rx_clk. figure 7  normal transmit 12 3 4 56 7 8 910 11 12 clk125 tx_word[15:0] tx_k_char[1:0] tx_data[9:0] invalid_k tx_wrn d0.0 d0.0 d0.0 d0.0 d0.0 d0.0 d0.0 fc01 0405 0203 0607 0809 0a0b d0.0 d0.0 k28.7 d1.0 d2.0 10 00 00 00 00 00
7 8B10B macro figure 8  invalid command figure 9  normal receive figure 10  receive error 12 3 4 56 7 8 910 11 12 clk125 tx_word[15:0] tx_k_char[1:0] tx_data[9:0] invalid_k tx_wrn d0.0 d0.0 d0.0 d0.0 d0.0 d0.0 d0.0 0000 0304 0102 0506 0708 090a d0.0 d0.0 d0.0 d1.0 10 00 00 00 00 00 rx_data[9:0] rbc1 rx_word[15:0] rbc0 code_errorn[1:0] word_syncn rx_clk rx_k_char[1:0] comma_det_en comma_detect d0.0 d1.0 d2.0 d3.0 d4.0 d5.0 d6.0 d7.0 d8.0 d9.0 d10.0 d11.0 0000 0000 0000 0001 0203 0405 00 00 00 00 00 00 rx_data[9:0] rbc1 rx_word[15:0] rbc0 code_errorn[1:0] word_syncn rx_clk rx_k_char[1:0] comma_det_en comma_detect 0000 00
8 figure 11  synchronization with the transceiver rx_data[9:0] rbc1 rx_word[15:0] rbc0 code_errorn[1:0] word_syncn rx_clk rx_k_char[1:0] comma_det_en comma_detect d0.0 d0.0 k28.5 d0.0 d0.0 d0.0 k28.5 d0.0 d0.0 d0.0 d0.0 d0.0 0000 0000 0000 0000 bc00 0000 00 00 00 00 10 00



actel and the actel logo are registered trademarks of actel corporation. all other trademarks are the property of their owners. http://www.actel.com actel europe ltd. daneshill house, lutyens close basingstoke, hampshire rg24 8ag united kingdom tel: +44-(0)125-630-5600 fax: +44-(0)125-635-5420 actel corporation 955 east arques avenue sunnyvale, california 94086 usa tel: (408) 739-1010 fax: (408) 739-1540 actel asia-pacific exos ebisu bldg. 4f 1-24-14 ebisu shibuya-ku tokyo 150 japan tel: +81-(0)3-3445-7671 fax: +81-(0)3-3445-7668 5172155-0/5.00


▲Up To Search▲   

 
Price & Availability of 8B10B

All Rights Reserved © IC-ON-LINE 2003 - 2022  

[Add Bookmark] [Contact Us] [Link exchange] [Privacy policy]
Mirror Sites :  [www.datasheet.hk]   [www.maxim4u.com]  [www.ic-on-line.cn] [www.ic-on-line.com] [www.ic-on-line.net] [www.alldatasheet.com.cn] [www.gdcy.com]  [www.gdcy.net]


 . . . . .
  We use cookies to deliver the best possible web experience and assist with our advertising efforts. By continuing to use this site, you consent to the use of cookies. For more information on cookies, please take a look at our Privacy Policy. X